package com.lab.entity;

import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 成员日进度主表实体类（映射数据库member_daily_progress表）
 * 存储成员每日进度的主记录，与日进度内容表为一对多关系，用于聚合当日进度信息
 */
@Data
public class MemberDailyProgress {

    /**
     * 主键ID（自增）
     * 对应数据库表字段：id INT NOT NULL AUTO_INCREMENT
     */
    private Integer id;

    /**
     * 成员ID（关联成员表）
     * 对应数据库表字段：member_id INT NOT NULL
     * 外键约束：fk_daily_progress_member，级联删除（成员删除时同步删除其日进度记录）
     * 与member表的id字段关联，标识进度所属成员
     */
    private Integer memberId;

    /**
     * 进度日期
     * 对应数据库表字段：progress_date DATE NOT NULL
     * 标识当前进度记录对应的日期，与内容表的content_date应保持逻辑一致
     * 数据库唯一约束：uk_member_date（同一成员同一天只能有一条主记录）
     */
    private LocalDate progressDate;

    /**
     * 角色类型
     * 对应数据库表字段：role_type VARCHAR(20) NOT NULL
     * 与成员表的role_type保持一致（如"前端"、"后端"），用于按角色分类统计进度
     */
    private String roleType;

    /**
     * 创建时间
     * 对应数据库表字段：create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
     * 记录该日进度主记录的创建时间，由数据库自动生成
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     * 对应数据库表字段：update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
     * 记录主记录最后一次更新的时间（如角色类型调整时），由数据库自动更新
     */
    private LocalDateTime updateTime;

}